//#include<iostream>
//#include<string.h>
//#include<algorithm>
//using namespace std;
//void Test1()
//{
//	string s("hello lufeixueya");
//	const string s1("Hello xiaolufei");
//	cout << s << " " << s1 << endl;
//	cout << s[0] << " " << s1[0] << endl;
//
//	s[0] = 'H';
//	cout << s << endl;
//}
//
//void Test2()
//{
//	//string s("xiaolufei");
//	///*for (size_t i = 0; i < s.size(); i++)
//	//{
//	//	s[i]++;
//	//	cout << s[i];
//	//}*/
//	//cout << endl;
//
//	//// 迭代器
//	//string::iterator it = s.begin();
//	//while (it != s.end())
//	//{
//	//	cout << *it << " ";
//	//	++it;
//	//}
//	//cout << endl;
//
//	//for (auto& a : s)
//	//{
//	//	cout << a << " ";
//	//}
//	//cout << endl;
//
//	//sort(s.begin(), s.end());
//	//cout << s << endl;
//	//sort(s.begin(), s.begin() + 5);
//	//cout << s << endl;
//
//	/*s.push_back(' ');
//	s.append(" hello");
//	cout << s << endl;
//	s += 'b';
//	s += 'wo';
//	cout << s << endl;*/
//
//	string file("string.cpp");
//	size_t pos = file.rfind('.');
//	string suffix(file.substr(pos, file.size() - pos));
//	//cout << suffix << endl;
//
//	string url("https://blog.csdn.net/lufeixueya/article/details");
//	cout << url << endl;
//	size_t start = url.find("://");
//	if (start == string::npos)
//	{
//		cout << "invalid url" << endl;
//		return;
//	}
//	start += 3;
//	size_t finish = url.find('/', start);
//	string address = url.substr(start, finish - start);
//	cout << address << endl;
//}
//int main()
//{
//	//string s1;//无参构造
//	//string s2("hello world\n");//带参构造
//	//string s3(s2);
//	//string s4(10, 'w');
//	//string s1("hello world");
//	//string s2 = "hello world";// 隐式类型转换
//	//const string& s3 = "hello world";//单参数构造
//	//cout << s1.size() << endl;
//	//cout << s1.length() << endl;
//	//cout << s1.capacity() << endl;
//	//cout << s1 << endl;
//	//cout << endl;
//	//s1.resize(10, 'a');
//	//cout << s1 << endl;
//	//cout << s1.size() << endl;
//	//cout << s1.capacity() << endl;
//	//cout << endl;
//	//s1.resize(15);
//	//cout << s1 << endl;
//	//cout << s1.capacity() << endl;
//	//cout << s1.size() << endl;
//	//cout << endl;
//	//s1.resize(5);// 开空间，并初始化
//	//cout << s1 << endl;
//	//cout << s1.size() << endl;
//	//cout << s1.capacity() << endl;
//	//cout << endl;
//	//string s;
//	//cout << s.size() << endl;// 0
//	//cout << s.capacity() << endl;// 15
//	//cout << endl;
//	//s.reserve(100);
//	//cout << s.size() << endl;// 0
//	//cout << s.capacity() << endl;// 111
//	//cout << endl;
//	//s.reserve(50);
//	//cout << s.size() << endl;// 0
//	//cout << s.capacity() << endl;// 111
//	//cout << endl;
//
//	// 遍历
//	//Test1();
//	Test2();
//	return 0;
//}
//void SplitFi1lename(const std::string& str)
//{
//	std::cout << "Splitting:" << str << '\n';
//	std::size_t found = str.find_last_of("/\\");
//	std::cout << "path:" << str.substr(0, found) << '\n';
//	std::cout << "file:" << str.substr(found + 1) << '\n';
//}
//int main()
//{
//	std::string str1("/user/bin/man");
//	std::string str2("c::\\user\\bin\\man");
//	cout << str2 << endl;
//
//	SplitFi1lename(str1);
//	SplitFi1lename(str2);
//
//	return 0;
//}
//int main()
//{
//	string s1("hello world");
//	s1[0] = 'x';
//
//	const string s2("hello world");
//	//s2[0] = 'x';
//
//	return 0;
//}

#include"String.h"

int main()
{
	xlf::String s1("hello world");
	//xlf::String s2(s1);

	xlf::String::iterator it1 = s1.begin();
	while (it1 != s1.end())
	{
		cout << *it1 << " ";
		++it1;
	}
	cout << endl;

	for (auto e : s1)
	{
		cout << e << " ";
	}
	cout << endl;

	const xlf::String s2("xxxxxxx");

	xlf::String::const_iterator it2 = s2.begin();
	while (it2 != s2.end())
	{
		// *it2 = 'y';//本身不能修改

		cout << *it2 << " ";
		++it2;
	}
	cout << endl;

	for (size_t i = 0; i < s2.size(); i++)
	{
		//s2[i]++;//本身不能修改
		cout << s2[i] << " ";//只能访问
	}
	cout << endl;


	xlf::String s3("xiaolufei");
	xlf::Push_back("ya");





	return 0;
}